def chat_with_user(user_question: str, user_id: int, session_id: int, streaming=False) -> str:
    """
    默认为非流式输出    非流式输出时，返回的str为AI的回答
        streaming=True时，返回的str为AI的全部回答（累计），可以不获取返回值即可在控制台打印流式输出

    与用户进行普通的聊天，包括实时问题的回答。
    隐藏命令。如用户输入：   **clear history     则会清除该用户的聊天记录  并返回清除信息，如       **系统消息** 已删除 10 条聊天记录。
    参数：
        user_question: 用户的提问
        user_id: 用户的唯一标识符          为了管理历史记录
        session_id: 会话的唯一标识符        为了管理历史记录
        :return: 返回AI的回答    -> str  以字符串的形式
    """
    from multi_modal.public import ChatAssistant
    # 创建ChatAssistant实例
    ChatAssistant = ChatAssistant(streaming=streaming)
    # 使用ChatAssistant实例处理聊天
    return ChatAssistant.chat(user_question, user_id, session_id)


if __name__ == "__main__":
    while True:
        # 带记忆、实时问题的多轮对话
        question = input("请输入问题：")

        # # 流式调用样例
        # # 如果需要流式输出，设置streaming=True
        # # 该res不需要打印，因为是流式输出，直接调用即可，就会自动打印输出
        # res = chat_with_user(str(question), int(1), int(2), streaming=True)

        # 非流式调用样例   模拟 用户1 在 会话2 提问
        res = chat_with_user(str(question), int(1), int(2), streaming=False)
        # 打印返回的回答
        print(res)
        print(type(res))


